package it.csi.finregio.finreges.dto;

import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.CompareToBuilder;

public class Direzione implements Comparable, Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5732560249372900728L;
	private String idDirezione;
	private Ente ente;
	private String descrizione;
	private String progressivo;

	public Direzione(String progressivo) {
		this.progressivo=progressivo;
	}
	public Direzione() {
		super();
	}

	public String getIdDirezione() {
		return idDirezione;
	}

	public void setIdDirezione(String idDirezione) {
		this.idDirezione = idDirezione;
	}

	public Ente getEnte() {
		return ente;
	}

	public void setEnte(Ente ente) {
		this.ente = ente;
	}

	public String getDescrizione() {
		return descrizione;
	}

	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}

	public String getProgressivo() {
		return progressivo;
	}

	public void setProgressivo(String progressivo) {
		this.progressivo = progressivo;
	}

	/**
	 * @see java.lang.Comparable#compareTo(Object)
	 */
	public int compareTo(Object object) {
		Direzione myClass = (Direzione) object;
		return new CompareToBuilder().append(this.descrizione,
				myClass.descrizione).append(this.idDirezione,
				myClass.idDirezione).append(this.progressivo,
				myClass.progressivo).append(this.ente, myClass.ente)
				.toComparison();
	}

	/**
	 * @see java.lang.Object#equals(Object)
	 */
	public boolean equals(Object object) {
		if (!(object instanceof Direzione)) {
			return false;
		}
		Direzione rhs = (Direzione) object;
		return getProgressivo().equals(rhs.getProgressivo());
	}

	/**
	 * @see java.lang.Object#hashCode()
	 */
	public int hashCode() {
		return getProgressivo().hashCode();
	}

	/**
	 * @see java.lang.Object#toString()
	 */
	public String toString() {
		return new ToStringBuilder(this).append("ente", this.ente).append(
				"progressivo", this.progressivo).append("descrizione",
				this.descrizione).append("idDirezione", this.idDirezione)
				.toString();
	}


}
